package com.example.a20112.ui_demo;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;

import com.example.a20112.ui_demo.fragment.CollectionFragment;
import com.example.a20112.ui_demo.fragment.SearchFragment;
import com.example.a20112.ui_demo.fragment.ShopFragment;
import com.example.a20112.ui_demo.fragment.UserFragment;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, BottomNavigationView.OnNavigationItemSelectedListener {
    private ViewPager viewPager;
    private BottomNavigationView bottomNavigationView;
    private FragmentPagerAdapter adapter;
    private List<Fragment> fragmentList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        viewPager = findViewById(R.id.viewPager);
        bottomNavigationView = findViewById(R.id.bottomNavigationView);

        fragmentList = new ArrayList<>();
        fragmentList.add(new ShopFragment());
        fragmentList.add(new CollectionFragment());
        fragmentList.add(new SearchFragment());
        fragmentList.add(new UserFragment());

        adapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                return fragmentList.get(position);
            }

            @Override
            public int getCount() {
                return fragmentList.size();
            }
        };

        viewPager.setAdapter(adapter);

        viewPager.addOnPageChangeListener(this);

        bottomNavigationView.setOnNavigationItemSelectedListener(this);

        bottomNavigationView.setSelectedItemId(R.id.nav_shop);
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        int id = 0;
        switch (position) {
            case 0:
                id = R.id.nav_shop;
                break;
            case 1:
                id = R.id.nav_collection;
                break;
            case 2:
                id = R.id.nav_search;
                break;
            case 3:
                id = R.id.nav_user;
                break;
        }
        bottomNavigationView.setSelectedItemId(id);

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        int id = 0;

        switch (item.getItemId()) {
            case R.id.nav_shop:
                id = 0;
                break;
            case R.id.nav_collection:
                id = 1;
                break;
            case R.id.nav_search:
                id = 2;
                break;
            case R.id.nav_user:
                id = 3;
                break;
        }
        viewPager.setCurrentItem(id);
        return true;
    }
}
